//axios的封装
//引入 axios
import axios from 'axios';
//引入提示信息的全局引入
import { Message, MessageBox } from 'element-ui';
import { getCookie } from '@/utils/support';
//引入store
import store from '../store';
import router from '../router';

const apiurl = process.env.VUE_APP_API_URL; //不同环境下获取的api的地址

//2.创建axios 实例
const service = axios.create({
    //3.配置
    baseURL: apiurl + "/index/Api/",
    timeout: 10 * 60 * 1000 //1分钟  
})

//请求拦截
service.interceptors.request.use(
    (config) => {
        //配置 请求拦截中的token
        config.headers.Authorization = getCookie("token"); //后期需要改写为 后台传过来的token的值
        return config;
    },
    (err) => {
        return Promise.reject(err);
    }
)

//响应拦截
service.interceptors.response.use(
        (res) => {
            const data = res.data;
            if (data.status != 200) {
                if (data.status == 401) {
                    //token出错,提示，跳转到登录页
                    MessageBox.confirm('您已经被登出了，您是留在这个页面上还是重新登录?', '确认登出', {
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(() => {
                        //退出登录
                        store.dispatch('LogoutAC');
                        //刷新页面
                        //location.reload();
                        router.go(0);
                    }).catch(() => {
                        console.log("留在原页面");
                    });

                } else {
                    console.log("出错了");
                    Message({
                        message: data.msg,
                        type: "error"
                    })
                }


            }
            return data;
        },
        (err) => {
            return Promise.reject(err);
        }
    )
    //导出
export default service;